<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>範囲選択部分のみを「コンパイル+実行」 | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀一般トップへ</a>
        <li><div class="list-title">
    <span class="no">2207</span>
    <a class="thread-title" href="2207.html#2207">範囲選択部分のみを「コンパイル+実行」</a></div>
    <ul><li><div class="list-title">
    <span class="no">2209</span>
    <a class="thread-title" href="2207.html#2209">RE: 範囲選択部分のみを「コンパイル+実行」</a></div>
    <ul><li><div class="list-title">
    <span class="no">2213</span>
    <a class="thread-title" href="2207.html#2213">Re2: 範囲選択部分のみを「コンパイル+実行」</a></div>
    <ul><li><div class="list-title">
    <span class="no">2214</span>
    <a class="thread-title" href="2207.html#2214">Re3: 範囲選択部分のみを「コンパイル+実行」</a></div>
    <ul><li><div class="list-title">
    <span class="no">2215</span>
    <a class="thread-title" href="2207.html#2215">Re4: 範囲選択部分のみを「コンパイル+実行」</a></div>
    <ul><li><div class="list-title">
    <span class="no">2218</span>
    <a class="thread-title" href="2207.html#2218">Re5: 範囲選択部分のみを「コンパイル+実行」</a></div>
    </li></ul></li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">2217</span>
    <a class="thread-title" href="2207.html#2217">皆さんに感謝です。m(__)m</a></div>
    </li><li><div class="list-title">
    <span class="no">2237</span>
    <a class="thread-title" href="2207.html#2237">マクロがうまく機能しません(T_T)すいさん助けて～。</a></div>
    <ul><li><div class="list-title">
    <span class="no">2238</span>
    <a class="thread-title" href="2207.html#2238">RE: マクロがうまく機能しません(T_T)すいさん助けて～。</a></div>
    <ul><li><div class="list-title">
    <span class="no">2240</span>
    <a class="thread-title" href="2207.html#2240">ご報告致します</a></div>
    <ul><li><div class="list-title">
    <span class="no">2241</span>
    <a class="thread-title" href="2207.html#2241">Re: ご報告致します</a></div>
    </li><li><div class="list-title">
    <span class="no">2242</span>
    <a class="thread-title" href="2207.html#2242">Re: ご報告致します</a></div>
    </li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">2246</span>
    <a class="thread-title" href="2207.html#2246">大成功＼(T_T)／感激</a></div>
    <ul><li><div class="list-title">
    <span class="no">2247</span>
    <a class="thread-title" href="2207.html#2247">もひとつ御教授願えませんかm(__)m</a></div>
    <ul><li><div class="list-title">
    <span class="no">2249</span>
    <a class="thread-title" href="2207.html#2249">RE: もひとつ御教授願えませんかm(__)m</a></div>
    <ul><li><div class="list-title">
    <span class="no">2256</span>
    <a class="thread-title" href="2207.html#2256">Re2: もひとつ御教授願えませんかm(__)m</a></div>
    <ul><li><div class="list-title">
    <span class="no">2265</span>
    <a class="thread-title" href="2207.html#2265">たびたび有難う御座いますm(__)m</a></div>
    </li></ul></li></ul></li><li><div class="list-title">
    <span class="no">2253</span>
    <a class="thread-title" href="2207.html#2253">有難う御座いました</a></div>
    </li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=2207>
    <span class="no">[2207]</span>
    <a class="thread-title" href="#2207">範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-19T12:36:57">2002年08月19日 12:36</time></h1>
    <div class="body">HSPスクリプトの範囲選択部分のみを「コンパイル+実行」<br>したいのですが、コマンドラインの最後に\Cでは意味が<br>違うのでしょうか？エラーになってしまいます。<br>どうしたらよいのでしょうか？<br><br>コンパイラはxiさん作の「xicmp」を使用しています。<br><br> </div></section>
    <ul><li><section><h1 id=2209>
    <span class="no">[2209]</span>
    <a class="thread-title" href="#2209">RE: 範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">すい</span>
    <time datetime="2002-08-19T21:56:21">2002年08月19日 21:56</time></h1>
    <div class="body">&gt;HSPスクリプトの範囲選択部分のみを「コンパイル+実行」<br>&gt;したいのですが、コマンドラインの最後に\Cでは意味が<br>&gt;違うのでしょうか？エラーになってしまいます。<br>&gt;どうしたらよいのでしょうか？<br>&gt;<br>&gt;コンパイラはxiさん作の「xicmp」を使用しています。<br><br>Xi Compiler &lt; http://home.catv.ne.jp/pp/logic/ &gt; は<br>&gt;「xicmp.exe」にコンパイル＋実行をしたいファイルをドロップするか<br>&gt;ASファイルに関連づけしてください。<br>だそうですから、つまり<br>xicmp  SourceFileName.as<br>でなくてはならないのでしょう。<br><br>\C は「選択文字列そのもの」を渡すわけですから駄目でしょう。<br>xicmp  \C<br>じゃ、コマンドラインは<br>xicmp  FONT  "ＭＳ ゴシック",12 ～～<br>とかいう具合になっちゃいますから。当然エラーになるかと。<br><br><br>手順としては<br> 1.選択されている範囲を一時作業ファイルに保存<br> 2.xicmp.exe に↑の一時作業ファイル名を付けて実行<br>に しないとダメですね。<br><br>でも手順1.が、サクラエディタ単体じゃ出来なさそうです．．．<br>外部に他ののユーティリティを介せば可能ですが。。。<br></div></section>
    <ul><li><section><h1 id=2213>
    <span class="no">[2213]</span>
    <a class="thread-title" href="#2213">Re2: 範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-20T21:36:27">2002年08月20日 21:36</time></h1>
    <div class="body">&gt; でも手順1.が、サクラエディタ単体じゃ出来なさそうです．．．<br>&gt; 外部に他ののユーティリティを介せば可能ですが。。。<br>ご返事有難う御座います。<br>\C→$Cでした。すみません。。。<br>一時ファイルを作成するための、「他のユーティリティ」とは具体的に何か御座いますか？<br>ご存知でしたら御教授願います。</div></section>
    <ul><li><section><h1 id=2214>
    <span class="no">[2214]</span>
    <a class="thread-title" href="#2214">Re3: 範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">すい</span>
    <time datetime="2002-08-21T00:18:39">2002年08月21日 00:18</time></h1>
    <div class="body">&gt;\C→$Cでした。すみません。。。<br>私も気付きませんでした。(;^^ゞ<br><br>&gt;一時ファイルを作成するための、「他のユーティリティ」とは具体的に何か御座いますか？<br><br>ここの過去の書き込み「2072:外部コマンドを使った文字列加工」が参考になります。<br>そちらを見て下さい。そして clip.exe を入手して下さい。<br><br>それを参考にして、作業としては、、、<br><br>※ 以下、Windows 95 での場合。<br>※ 以下は clip.exe をサクラエディタと同じ場所に入れた場合<br>　 （ C:\Program Files\SAKURA\clip.exe ）の例です。<br><br>1.バッチを作成<br>エディタで次の３行を打ち込み、C:\Program Files\SAKURA 内に HSPCMP.BAT という名前で保存。<br># ３行目、行頭の rem を削除してみて問題無ければ削除して下さい。<br># ２行目、C:\hogehoge\xicmp.exe の所はきちんと xicmp.exe のパスの記述にして下さい。<br>::--↓-- HSPCMP.BAT --↓--<br>"C:\Program Files\SAKURA\clip.exe" p &gt; %TEMP%\TEMPFILE.AS<br>C:\hogehoge\xicmp.exe  %TEMP%\TEMPFILE.AS<br>rem  del    %TEMP%\TEMPFILE.AS<br>::------------------------<br>　% １行目：クリップボードの内容を一時作業ファイル %TEMP%\TEMPFILE.AS に保存する。<br>　% ２行目：xicmp.exe に対して一時作業ファイル名を渡してコンパイルする。<br>　% ３行目：一時作業ファイル %TEMP%\TEMPFILE.AS を削除する。（↑上記記述では rem で注釈にして殺してあるけど）<br><br><br>2.↑作成した HSPCMP.BAT のプロパティを出し、プログラム タブにて<br>・バッチファイル[　　　　　　　]　← 余計な処理で時間食わないよう、空欄にしておく。(大して変わらないけど)<br>・実行時の大きさ[最小化の状態　]<br>・[レ] プログラム終了時にウィンドウを閉じる　← チェックする<br>に設定する。<br>　% バッチ実行時には目立たない最小化状態で動作し、かつ、終了時には<br>　% 自動的にウィンドウが消えて終るように設定している。<br><br><br>3.マクロを作成。HSPCMP.MAC とか適当な名前で保存します。内容は以下の２行。<br>//--↓-- HSPCMP.MAC --↓--<br>S_Copy();<br>S_ExecCommand( '"C:\Program Files\SAKURA\HSPCMP.BAT"', 0);<br>//------------------------<br>　% 選択されている範囲をクリップボードに取り込んでから、<br>　% バッチ "C:\Program Files\SAKURA\HSPCMP.BAT" を実行する。<br><br><br>で、マクロ HSPCMP.MAC を実行すれば。。。<br><br>これはあくまで一例ですが、こんな感じでどうでしょうか？<br>他にも色々な手段がありそうです。<br><br>WinNT系 OS だとちょっと違う所があるかもしれませんが、私の手元には NT系 OS が<br>無いので分かりません。異なる場合は色々試行錯誤して見てください。<br></div></section>
    <ul><li><section><h1 id=2215>
    <span class="no">[2215]</span>
    <a class="thread-title" href="#2215">Re4: 範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">xi</span>
    <time datetime="2002-08-21T06:06:01">2002年08月21日 06:06</time></h1>
    <div class="body">初めまして、xiと申します。<br>わざわざパッチファイルまで作って頂き感無量なのですが<br>xicmp側で「クリップボード実行機能」を追加致しました。<br>一応、ご報告までと思いまして・・・。（＾－＾；<br><br>めろめろさん、というわけですので<br>マクロファイルには<br><br>S_Copy;<br>S_ExecCommand('C:\HSP\xicmp.exe /clp',False);<br><br>と、記述して下さい。m(_ _)m<br><br>では、1ユーザーとしてSAKURAエディタの開発の進展を<br>お祈りしています。</div></section>
    <ul><li><section><h1 id=2218>
    <span class="no">[2218]</span>
    <a class="thread-title" href="#2218">Re5: 範囲選択部分のみを「コンパイル+実行」</a>
    <span class="author">すい</span>
    <time datetime="2002-08-21T12:45:40">2002年08月21日 12:45</time></h1>
    <div class="body">&gt;xicmp側で「クリップボード実行機能」を追加致しました。<br>&gt;一応、ご報告までと思いまして・・・。（＾－＾；<br>　　 チョキチョキチョキ<br>　　　　"(V)．．(V)"<br>　　　　 ミ( 略 )ミ<br>&gt;S_Copy;<br>&gt;S_ExecCommand('C:\HSP\xicmp.exe /clp',False);<br>&gt;<br>&gt;と、記述して下さい。m(_ _)m<br><br>おお、ナイス!!です。<br># 案外存在しているのか？ (サクラエディタユーザー &amp;&amp; HSPユーザー)な人．．． :-P<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li><li><section><h1 id=2217>
    <span class="no">[2217]</span>
    <a class="thread-title" href="#2217">皆さんに感謝です。m(__)m</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-21T12:44:33">2002年08月21日 12:44</time></h1>
    <div class="body">【すいさんへ】<br>詳細に渡って記述して頂き有難う御座います。<br>勉強のためにもがんばって理解しようと思います。<br><br>【xiさんへ】<br>他掲示板にまで来て頂き本当に有難う御座います。<br>このように私のような"ぺーぺー"の要望を取り入れて下さることは非常に有り難く、感謝しております。</div></section>
    </li><li><section><h1 id=2237>
    <span class="no">[2237]</span>
    <a class="thread-title" href="#2237">マクロがうまく機能しません(T_T)すいさん助けて～。</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-28T18:51:15">2002年08月28日 18:51</time></h1>
    <div class="body">試してみたンですが、うまくいかなくて。。。<br><br>S_Copy;<br>S_ExecCommand('C:\hsp\hsp255\xicmp.exe /clp',False);<br><br>と記述したテキストファイルをマクロを選択するフォルダに置き、【登録済みマクロの実行】を行ったところ、【Line 1:は存在しない関数です】と表示されました。SAKURAは最新バージョンを使用してます。<br><br>xiさんにも聞いてみたんですが、私の説明不足で解決出来てません。確認のために頭の"S_"も削除しましたが、ダメでした。何が悪いんでしょうか。どうか御教授願います。</div></section>
    <ul><li><section><h1 id=2238>
    <span class="no">[2238]</span>
    <a class="thread-title" href="#2238">RE: マクロがうまく機能しません(T_T)すいさん助けて～。</a>
    <span class="author">げんた</span>
    <time datetime="2002-08-28T21:17:39">2002年08月28日 21:17</time></h1>
    <div class="body">&gt;S_Copy;<br>S_Copy();<br>と()を付ける必要があると思います．<br></div></section>
    <ul><li><section><h1 id=2240>
    <span class="no">[2240]</span>
    <a class="thread-title" href="#2240">ご報告致します</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-29T12:41:43">2002年08月29日 12:41</time></h1>
    <div class="body">▼ げんたさん<br>&gt; &gt;S_Copy;<br>&gt; S_Copy();<br>&gt; と()を付ける必要があると思います．<br>有難うござます。Line1のエラーは消えました。<br>今度は、【Line2:Colum 54:Syntax Error】と出ました。<br>御手数かけて申し訳ありませんが、御教授願います。</div></section>
    <ul><li><section><h1 id=2241>
    <span class="no">[2241]</span>
    <a class="thread-title" href="#2241">Re: ご報告致します</a>
    <span class="author">もか</span>
    <time datetime="2002-08-29T13:18:15">2002年08月29日 13:18</time></h1>
    <div class="body">▼ めろめろさん<br>&gt; &gt; 今度は、【Line2:Colum 54:Syntax Error】と出ました。<br><br>&gt; S_ExecCommand('C:\hsp\hsp255\xicmp.exe /clp',False);<br>は、S_ExecCommand('C:\hsp\hsp255\xicmp.exe /clp', 0 );<br>で動くとおもいます。<br></div></section>
    </li><li><section><h1 id=2242>
    <span class="no">[2242]</span>
    <a class="thread-title" href="#2242">Re: ご報告致します</a>
    <span class="author">げんた</span>
    <time datetime="2002-08-29T13:20:28">2002年08月29日 13:20</time></h1>
    <div class="body">&gt;今度は、【Line2:Colum 54:Syntax Error】と出ました。<br>False =&gt; 0 としてみてください．<br>PPAではFalseもOKなのかな？ただのキーマクロでは整数と"or'で始まる文字列しか扱えません．<br></div></section>
    </li></ul></li></ul></li></ul></li><li><section><h1 id=2246>
    <span class="no">[2246]</span>
    <a class="thread-title" href="#2246">大成功＼(T_T)／感激</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-29T19:21:59">2002年08月29日 19:21</time></h1>
    <div class="body">皆さんのご指導でようやっと意味がわかりました。<br>xiさん<br>すいさん<br>もかさん<br>げんたさん<br>全ての方に感謝致します。<br></div></section>
    <ul><li><section><h1 id=2247>
    <span class="no">[2247]</span>
    <a class="thread-title" href="#2247">もひとつ御教授願えませんかm(__)m</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-29T20:25:07">2002年08月29日 20:25</time></h1>
    <div class="body">教えて頂いた方法なのですが、カレントディレクトリがxicmpと同じ場所になってしまいます。<br>出来れば、範囲選択したスクリプトを記述したファイルと同じディレクトリを、カレントディレクトリとしたいんです。どうしたらよいのでしょうか。御教授願います。</div></section>
    <ul><li><section><h1 id=2249>
    <span class="no">[2249]</span>
    <a class="thread-title" href="#2249">RE: もひとつ御教授願えませんかm(__)m</a>
    <span class="author">すい</span>
    <time datetime="2002-08-29T22:40:19">2002年08月29日 22:40</time></h1>
    <div class="body">&gt;教えて頂いた方法なのですが、カレントディレクトリがxicmpと同じ場所になってしまいます。<br>&gt;出来れば、範囲選択したスクリプトを記述したファイルと同じディレクトリを、カレントディレクトリとしたいんです。どうしたらよいのでしょうか。御教授願います。<br><br>xicmp.exe 側で /clp と同時に使える<br>「作業ディレクトリを指定できるオプション」<br>が追加されれば楽ですが、と試しに言ってみる。<br>PPA.DLL を使ったマクロなら編集中のファイル名をフルパスで取得出来ますので、<br>それをコマンドライン渡しすることで．．．とか。<br><br>でも、いっそ、その辺の処理をやる外部ツールを HSP で作っちゃう<br>なんていう選択肢もありですね。<br><br>　1.sdim で、余裕を見て思いっきり大きなサイズの文字列変数を用意しておく。<br>　2.clipget でクリップボードの中身を↑の文字変数に（最大サイズを指定して）取得。<br>　3.cmdline に渡された文字列から作業ディレクトリの指示部を抜き出す。<br>　　sdim&#9;tmpdir,300 ; しておいた tmpdir に作業ディレクトリ名を抜き出す。<br>　　もし指定ディレクトリが存在しなければ、存在する場所を探す。<br>　　　　例：指定が C:\TEXTPROG\TEST1.AS だったら<br>　　　　　　 → C:\TESTPROG\TEST1.AS という*ディレクトリ*は？<br>　　　　　　無い → C:\TESTPROG という*ディレクトリ*は？<br>　　　　　　あった → tmpdir = C:\TESTPROG にする。<br>　　残りの部分を起動するコマンドと見なし、<br>　　sdim&#9;comnd,300 ; しておいた comnd に取り出す。<br>　4.カレントディレクトリを tmpdir に移動する。<br>　　chdir&#9;tmpdir<br>　5.bsave で 2.の文字変数を適当なファイルに書き込んで保存。<br>　　例えばファイル名 TEMP.TMP とか。<br>　6.↑5.で保存したファイル名をくっ付けて実行。↓こんなような雰囲気。<br>　　sdim  comm,1000<br>　　comm = comnd + " " + "TEMP.TMP"<br>　　exec  comm<br><br>みたいな感じのプログラムを HSP ででも作っておく。<br>ソフトの名前を clip_go.exe とかで。<br><br>で、あとはマクロ。HSPCMP.PPA とかいう名前のマクロで<br>//------------------------<br>// 実行には PPA.DLL が必須です。<br>// マクロファイルの拡張子は .PPA でなくてはなりません。<br>var<br>    fullpath:String;<br>begin<br>    S_Copy();<br>    fullpath := S_GetFilename();    // フルパス<br>    S_ExecCommand( '"C:\hogehoge\clip_go.exe" /tmp ' + fullpath + ' "C:\WORKDIR\" "C:\hogehoge\xicmp.exe"', 0);<br>end<br>//------------------------<br>を実行。みたいな感じで。<br><br><br>こういう用途の事を考えると、サクラエディタのマクロ側に<br>「選択範囲を指定ファイルに書き込む」<br>とかいう機能があると外部ユーティリティ不要で、もう少しスッキリしそうですが。 :-(<br>FileName = SelSave('C:\hoge.tmp');    // 選択範囲を指定ファイルに保存。<br>FileName = SelSave('');               // 選択範囲を作業ディレクトリ %TEMP% 内の一時作業ファイルに保存し、一時作業ファイル名を返す。（作業ファイル名は自動生成される）<br>みたいなのが。<br></div></section>
    <ul><li><section><h1 id=2256>
    <span class="no">[2256]</span>
    <a class="thread-title" href="#2256">Re2: もひとつ御教授願えませんかm(__)m</a>
    <span class="author">xi</span>
    <time datetime="2002-08-31T14:50:08">2002年08月31日 14:50</time></h1>
    <div class="body">▼ すいさん<br>&gt; xicmp.exe 側で /clp と同時に使える<br>&gt; 「作業ディレクトリを指定できるオプション」<br>&gt; が追加されれば楽ですが、と試しに言ってみる。<br><br>追加してみる。<br>肝心のディレクトリに頭が回りませんでした。m(_ _)m<br><br>めろめろさん、これで宜しいでしょうか？（＾－＾；<br>では、何度も申し訳ありませんでした。<br><br>ちなみに、編集中のファイルのディレクトリで実行するマクロです。<br>（拡張子をppaとしてください。PPA.DLLもお忘れずに。）<br>Delphi少し心得があるのでPPA.DLLは、大いに助かりますです。<br><br>var<br>&#9;Path, Dir :String;<br>&#9;i         :Integer;<br>begin<br>&#9;// フルパス→ディレクトリ取得<br>&#9;Path := S_GetFilename();<br>&#9;Dir  := '';<br><br>&#9;i := Pos('\',Path);<br>&#9;while (i&gt;0) do begin<br>&#9;&#9;Dir := Dir + Copy(Path,1,i);<br>&#9;&#9;Path := Delete(Path,1,i);<br>&#9;&#9;i := Pos('\',Path);<br>&#9;end;<br>&#9;Dir := Delete(Dir,Length(Dir),1);<br><br>&#9;// 選択範囲を実行<br>&#9;S_Copy();<br>&#9;S_ExecCommand('E:\HSP\xicmp.exe '+Dir+' /clp',0);<br>end;</div></section>
    <ul><li><section><h1 id=2265>
    <span class="no">[2265]</span>
    <a class="thread-title" href="#2265">たびたび有難う御座いますm(__)m</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-09-02T13:28:51">2002年09月02日 13:28</time></h1>
    <div class="body">&gt; 追加してみる。<br>有難う御座います。<br><br>&gt; ちなみに、編集中のファイルのディレクトリで実行するマクロです。<br>もう完璧です。涙が止まりません　ｖ(TOT)ｖ</div></section>
    </li></ul></li></ul></li><li><section><h1 id=2253>
    <span class="no">[2253]</span>
    <a class="thread-title" href="#2253">有難う御座いました</a>
    <span class="author">めろめろ</span>
    <time datetime="2002-08-30T13:08:13">2002年08月30日 13:08</time></h1>
    <div class="body">すいさん度々有難う御座います。<br>よく読んで試したいと思います。<br>またご報告致します。</div></section>
    </li></ul></li></ul></li></ul></li></ul></body></html>